#include <iostream>
using namespace std;

template<class DataType>
struct Node {
    DataType data;                // 存储数据
    Node<DataType> *next;        // 存储下一个结点的地址
};

template<class DataType>
class CircularLinkedList{
private:
    Node<DataType> *first;
public:
    CircularLinkedList();
    CircularLinkedList(DataType a[],int n);
    ~CircularLinkedList();
    int Length();
    DataType Get(int i);
    int Locate(DataType x);
    void Insert(int i,DataType data);
    DataType Delete(int i);
    void PrintList();
};

template<class DataType>
CircularLinkedList<DataType>::CircularLinkedList() {
    first = new Node<DataType>;
    first ->data = NULL;
    first ->next = first;
}

template<class DataType>
CircularLinkedList<DataType>::CircularLinkedList(DataType *a, int n) {

}

template<class DataType>
CircularLinkedList<DataType>::~CircularLinkedList() {

}

template<class DataType>
int CircularLinkedList<DataType>::Length() {
    return 0;
}

template<class DataType>
DataType CircularLinkedList<DataType>::Get(int i) {
    return nullptr;
}

template<class DataType>
int CircularLinkedList<DataType>::Locate(DataType x) {
    return 0;
}

template<class DataType>
void CircularLinkedList<DataType>::Insert(int i, DataType data) {

}

template<class DataType>
DataType CircularLinkedList<DataType>::Delete(int i) {
    return nullptr;
}

template<class DataType>
void CircularLinkedList<DataType>::PrintList() {

}
